package com.itheima.edu.info.manager.dao;

import com.itheima.edu.info.manager.domain.Student;

/**、
 * （库管）
 * 进行一些增加删除的真正实现的层
 */
public class StudentDao {
    //添加(库管层的代码)
    //创建学生数组
   private static Student[]stus= new Student[5];
    public boolean addStudent(Student stu) {
        //添加学生到数组
        //定义index为-1,假设数组已经全部存满,没有null的元素
        int index=-1;
        //遍历数组中的每一个元素,判断是否为null
        for (int i = 0; i < stus.length; i++) {
            Student student = stus[i];
            if (student==null){
                index=i;
                //如果为null,让index变量记录当前索引的位置,并使用break结束循环遍历
                break;
            }
        }
        //返回是否添加成功boolean类型状态
        if (index==-1){
            //装满了添加失败
            return false;
        }else {
            //没有装满正常添加
            //数组名索引里存传进来的stu返回true添加成功
            stus[index]=stu;
            return true;
        }
    }
//查找
    public Student[] findAllStudent() {
        return stus;
    }
//删除学生
    public void deleteStudentById(String deId) {
        //查找id在容器中的索引位置
        int index = getIndex(deId);
        //将该索引位置,使用null元素进行覆盖
        stus[index]=null;
    }
    //查询索引位置
    public int getIndex(String id){
        int index=-1;
        for (int i = 0; i < stus.length; i++) {
            Student stu = StudentDao.stus[i];
            if (stu!=null&&stu.getId().equals(id)){
                index=i;
                break;
            }
        }
        return index;
    }
//修改
    public void updateStudent(String updateId, Student newStu) {
      //查找  updateId在容器中的索引位置
        int index = getIndex(updateId);
        //将索引位置使用的学生对象进行替换
        stus[index]=newStu;
    }
}
